﻿/***
** 作者:刘伟
** 日期:2008-12-25
** 功能:主要用于检查数据的有效性
***/


/**
* 验证普通字串，只要字串中不包含特殊字符即可
*/
function checkTextDataForNORMAL(strValue)
{
// 特殊字符验证格式
var regTextChar = /([\*\"\'<>\/])+/ ;
return !regTextChar.test(strValue);
}

/**
* 验证整数,包含正整数和负整数
*/
function checkTextDataForINTEGER(strValue)
{
var regTextInteger = /^(-|\+)?(\d)*$/;
return regTextInteger.test(strValue);
}

/**
* 检查是否为正整数 
*/
function isUnsignedInteger(strInteger) 
{ 
  var newPar=/^\d+$/ 
  return newPar.test(strInteger); 
}

function checkMoney(strValue, strUnit)
{
var testMoney = eval("/^\\d+(\\.\\d{0," + (strUnit.length -1) + "})?$/");
return testMoney.test(strValue);
}

/**
* 验证浮点数
*/
function checkTextDataForFLOAT(strValue)
{
var regTextFloat = /^(-)?(\d)*(\.)?(\d)*$/;
return regTextFloat.test(strValue);
}

/**
* 验证数字
*/
function checkTextDataForNUMBER(strValue)
{
var regTextNumber = /^(\d)*$/;
return regTextNumber.test(strValue);
}

/**
* 验证英文字母，不区分大小写
*/
function checkTextDataForENGLISH(strValue)
{
var regTextEnglish = /^[a-zA-Z]*$/;
return regTextEnglish.test(strValue);
}

/**
* 验证大写英文字母
*/
function checkTextDataForENGLISHUCASE(strValue)
{
var regTextEnglishUCase = /^[A-Z]*$/;
return regTextEnglishUCase.test(strValue);
}

/**
* 验证小写英文字母
*/
function checkTextDataForENGLISHLCASE(strValue)
{
var regTextEnglishLCase = /^[a-z]*$/;
return regTextEnglishLCase.test(strValue);
}

/**
* 验证英文字母和数字，不区分大小写
*/
function checkTextDataForENGLISHNUMBER(strValue)
{
var regTextEnglishNumber = /^[a-zA-Z0-9]*$/;
return regTextEnglishNumber.test(strValue);
}

/**
* 验证时间
*/
function checkTextDataForTIME(strValue)
{
var regTextTime = /^(\d+):(\d{1,2}):(\d{1,2})$/;
return regTextTime.test(strValue);
}

/**
* 验证电话号码
*/
function checkTextDataForPHONE(strValue)
{
var regTextPhone = /^(\(\d+\))*(\d)+(-(\d)+)*$/;
return regTextPhone.test(strValue);
}

/**
* 验证EMail
*/
function checkTextDataForEMAIL(strValue)
{
var regTextEmail = /^[\w-]+@[\w-]+(\.(\w)+)*(\.(\w){2,3})$/;
return regTextEmail.test(strValue);
}

/**
* 验证URL
*/
function checkTextDataForURL(strValue)
{
var regTextUrl = /^(file|http|https|ftp|mms|telnet|news|wais|mailto):\/\/(.+)$/;
return regTextUrl.test(strValue);
}

/**
* 验证邮政编码
*/
function checkTextDataForPOST(strValue)
{
var regTextPost = /^(\d){6}$/;
return regTextPost.test(strValue);
} 




/**
 * 将日期标准化,然后比较两个日期的大小
 * @param strDate1 日期字符串1,如'2007-08-15'
 * @param strDate2 日期字符串2,如'2007-8-25'
 */
function comparedate(strDate1,strDate2){
 strDate1 = formatdate(strDate1,"-");
 strDate2 = formatdate(strDate2,"-");
    if(strDate1 == strDate2){
        return true;
    }else{
        if(strDate1 > strDate2){
            return false;
        }else{
            return true;
        }
    }
}


/**
 * 将不标准的时间格式化成标准形式(月/日只有1位时在前面补'0'),
 * 并且可以指定年月日的分隔符号
 *
 * @param strDate '2007 5 16' or '2007-05-16',分隔符号任意(1个字符),但年月日必须依次序
 * @param strSep 新的日期分隔符号
 * @return 新的日期字符串
 * @type String
 */
function formatdate(strDate,strSep){
    var strRet="";

    var strYear=strDate.substr(0,4);
    var strMonth="";
    var strDay="";
    if(isDigit(strDate.substr(6,1))){
        strMonth=strDate.substr(5,2);
        strDay=strDate.substr(8,strDate.length);
    }else{
        strMonth="0"+strDate.substr(5,1);
        strDay=strDate.substr(7,strDate.length);
    }

    if(strDay.length<2)strDay="0"+strDay;

    strRet=strYear+strSep+strMonth+strSep+strDay;

    return strRet;
}

 

/**
 * 判断字符num是否为数字
 *
 * @param {String} num - digit '0'~'9'
 * @return true if value is a 1-character digit
 * @type Boolean
 */
function isDigit(num) {
    if(num!=null||num.length==1){
        var string="1234567890";
        if (string.indexOf(num) != -1) {
            return true;
        }
    }
    return false;
}
